SQLパススルー機能の有効化
この項では、TimesTenで、DSNにPassThrough属性を設定して、SQLをOracleにパススルーするようにする方法について説明します。パススルー機能の詳細は、『Oracle TimesTen In-Memory Databaseアーキテクチャ概要』のCache Connect to Oracleに関する章のパススルー機能の項を参照してください。
図2.5 SQLをキャッシュ・グループからOracleに渡す
手順は次のとおりです。
手順1: 新しいTimesTen DSNの作成
「TimesTen DSNの作成」でcgDSNに対して指定した属性と同じ属性で、cgPT2 という新しいTimesTenシステム・データソース(システムDSN)を作成します。また、キャッシュ・グループに存在しないOracle表の問合せおよびプロシージャ・コールを直接Oracleに渡すには、PassThrough属性値を2に設定します。
cgPT2に対して、次の設定を行います。
- データ・ストア・パスおよび名前: c:\temp\cgPT2d
- 永続データのサイズ(MB): 16
- 一時データのサイズ(MB): 16
- ユーザーID: testuser(このIDは、OracleユーザーIDとしても使用されます)
- Oracle ID: system1
- Oracleパスワード: mypsswrd
- パススルー: 2
他のすべての設定には、デフォルト値を使用します。
[cgPT2]
Datastore=/temp/cgPT2d
PermSize=16
TempSize=16
UID=testuser
OracleId=system1
OraclePwd=mypsswrd
Passthrough=2
キャッシュ・グループに対するDSN定義の詳細は、「キャッシュされた表のDSN定義」を参照してください。
手順2: READONLYキャッシュ・グループの作成
図2.6 READONLYキャッシュ・グループの作成
TimesTenウィンドウで、DSN cgPT2に接続し、キャッシュ管理ユーザーIDおよびパスワードを設定してキャッシュ・エージェントを起動し、「手順2: キャッシュ・グループの作成」で作成したものと同じREADONLYキャッシュ・グループを作成します。
ttIsql cgPT2
Command> call ttCacheUidPwdSet('testuser','mypsswrd');
Command> call ttCacheStart();
Command> CREATE READONLY CACHE GROUP readcache
> AUTOREFRESH INTERVAL 5 SECONDS
> FROM readtab (a INT NOT NULL PRIMARY KEY, b CHAR(31));
手順3: キャッシュ・グループのロード
Oracle表の内容をキャッシュ・グループ表にロードします。
Command> LOAD CACHE GROUP readcache COMMIT EVERY 30 ROWS;
手順4: キャッシュ・グループ表の更新
図2.7 TimesTenキャッシュ・グループ表の更新
ttIsqlを使用して、数行をreadtabに挿入します。
Command> INSERT INTO readtab VALUES (5, 'Just');
Command> INSERT INTO readtab VALUES (6, 'Passing');
Command> INSERT INTO readtab VALUES (7, 'Through');
SQL*Plusを使用して、readtab表の内容を確認します。
SQL> SELECT * FROM readtab;
A B
---------- -------------------------------
1 hello
2 world
3 Hello
4 Again
5 Just
6 Passing
7 Through
7 rows selected.
次に、ttIsqlを使用して、readtab表の内容を確認します。
Command> SELECT * FROM readtab;
< 1, hello >
< 2, world >
< 3, Hello >
< 4, Again >
< 5, Just >
< 6, Passing >
< 7, Through >
7 rows found
手順5: キャッシュ・グループの削除
ttIsqlを使用して、DROP CACHE GROUP文を入力し、TimesTenデータ・ストアからキャッシュ・グループを削除します。
Command> DROP CACHE GROUP readcache;
手順6: キャッシュ・エージェントの停止
ttCacheStopプロシージャをコールして、データ・ストアのキャッシュ・エージェントを停止します。
Command> call ttCacheStop();